package com.pai4j.common.config.annotation;

import java.lang.annotation.*;

/**
 * 创作者身份校验注解
 * 用于标记需要创作者身份才能访问的方法
 * 
 * 使用场景：
 * - 发布文章
 * - 创建专题/栏目
 * - 发布视频/问题等内容
 * 
 * 校验规则：
 * 1. 用户必须已申请成为创作者
 * 2. 创作者状态必须为"已通过"（APPROVED）
 * 3. 创作者不能被禁用
 *
 * @author: CYM-pai
 * @date: 2025/11/01
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequireCreator {
    
    /**
     * 错误提示消息
     * 默认为空，使用标准提示
     */
    String message() default "";
    
    /**
     * 是否允许草稿状态不校验
     * 如果为true，则在保存草稿时不校验创作者身份
     * 默认为true
     */
    boolean allowDraft() default true;
    
    /**
     * 从哪个参数获取用户ID
     * 默认从SessionHelper获取当前登录用户
     * 如果指定参数名，则从方法参数中获取
     */
    String userIdParam() default "";
    
    /**
     * 从哪个参数判断是否草稿状态
     * 用于allowDraft=true时判断
     * 默认为"status"
     */
    String statusParam() default "status";
}

